package com.xy.biz.xd.domain.resp;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class ListDocumentFlowBrorowAndPrintAndDropResponse {

    /**
     * 流程Id
     */
    private Long documentFlowId;
    /**
     * 流程编号
     */
    private String documentFlowCode;
    /**
     * 流程类型：0-未定义，1-新增流程，2-修订流程，3-作废流程，4-下载审批流程，5-借阅流程
     */
    private Integer flowType;
    /**
     * 紧急程度：0-正常，1-紧急
     */
    private String urgent;
    /**
     * 申请原因
     */
    private String reason;
    /**
     * 阶段：0-未定义
     */
    private String phase;
    /**
     * 生效日期
     */
    private LocalDate effectDate;
    /**
     * 复审日期
     */
    private LocalDate reviewDate;
    /**
     * 是否参加培训：0-否，1-是
     */
    private Boolean trainFlag;
    /**
     * 创建用户Id
     */
    private Long createUserId;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    /**
     * 访问时间(几分钟前)
     */
    private String accessTimeString;
    /**
     * 流程类型名称
     */
    private String flowTypeName;
    /**
     * 阶段名称
     */
    private String phaseName;
    /**
     * 紧急程度：0-正常，1-紧急
     */
    private String urgentName;

    /**
     * 培训人Id
     */
    private Long trainerUserId;

    /**
     * 培训人姓名
     */
    private String trainerUserName;
    /**
     * 流程文件信息
     */
    private List<DocumentFlowInfo> documentFlowInfoList;

    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public static class DocumentFlowInfo {
        /**
         * 文件编号
         */
        private String documentCode;
        /**
         * 文件Id
         */
        private Long documentId;
        /**
         * 文件后缀
         */
        private String fileExtension;
        /**
         * 文件名称
         */
        private String documentName;
        /**
         * 文件版本
         */
        private String documentVersion;
        /**
         * 文件等级
         */
        private Integer documentLevel;
        /**
         * 文件属性
         */
        private String documentProperty;
        /**
         * 来源信息
         */
        private String sourceInfo;
    }
}
